/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entitaet;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

/**
 *
 * @author Dominik
 * @author Steffen
 */
@Entity
public class Produkt implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int produktNr;
    @Column(nullable=false)
    private String name;
    @Column(nullable=false)
    private int verkaufsPreis;
    @OneToMany(mappedBy="produkt", cascade={CascadeType.ALL}, orphanRemoval=true)
    private Set<Bestellposten> bestellposten = new HashSet<>();
    
    public Produkt() {
        name = "empty_name";
        verkaufsPreis = 0;
    }
    
    public Produkt(String name, int verkaufsPreis) {
        this.name = name;
        this.verkaufsPreis = verkaufsPreis;
    }
    
    public void bestellPostenHinzufuegen(Bestellposten p) {
        bestellposten.add(p);
    }
    
    public void BestellPostenLoeschen(Bestellposten p) {
        bestellposten.remove(p);
    }

    /**
     * @return the produktNr
     */
    public int getProduktNr() {
        return produktNr;
    }

    /**
     * @param produktNr the produktNr to set
     */
    public void setProduktNr(int produktNr) {
        this.produktNr = produktNr;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the verkaufsPreis
     */
    public int getVerkaufsPreis() {
        return verkaufsPreis;
    }

    /**
     * @param verkaufsPreis the verkaufsPreis to set
     */
    public void setVerkaufsPreis(int verkaufsPreis) {
        this.verkaufsPreis = verkaufsPreis;
    }

    /**
     * @return the bestellposten
     */
    public Set<Bestellposten> getBestellposten() {
        return bestellposten;
    }

    /**
     * @param bestellposten the bestellposten to set
     */
    public void setBestellposten(Set<Bestellposten> bestellposten) {
        this.bestellposten = bestellposten;
    }
    
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("ProduktNr: ").append(produktNr).append(", ");
        sb.append("Name: ").append(name).append(", ");
        sb.append("Preis: ").append(verkaufsPreis);
        return sb.toString();
    }

    
    
}
